package ch05
{
	import flash.display.Sprite;
	import flash.events.Event;

	import utils.Arrow;

	/**
	 * 鼠标跟随
	 * @author sjp
	 *
	 */
	public class FollowMouse extends Sprite
	{
		private var arrow:Arrow;
		private var speed:Number=5;

		public function FollowMouse()
		{
			init();
		}

		private function init():void
		{
			arrow=new Arrow();
			addChild(arrow);
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}

		private function onEnterFrame(event:Event):void
		{
			/**
			 * 先要计算出箭头与鼠标的 x 距离和 y 距离，并使用 Math.atan2 计算出它们的夹角。
			 * 然后使用这个角度使箭头旋转，再使用 Math.cos 和 Math.sin 与速度相乘计算出 x,y 速度向量，
			 * 最后将它们加到箭头的坐标上。
			 * */
			var dx:Number=mouseX - arrow.x;
			var dy:Number=mouseY - arrow.y;
			var angle:Number=Math.atan2(dy, dx);
			arrow.rotation=angle * 180 / Math.PI;
			var vx:Number=Math.cos(angle) * speed;
			var vy:Number=Math.sin(angle) * speed;
			arrow.x+=vx;
			arrow.y+=vy;
		}
	}
}